﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using EjemploEEF5.Models;

namespace EjemploEEF5.Controllers
{
    public class AlumnoController : Controller
    {
        private ContextoDatos db = new ContextoDatos();


        //
        // GET: /Alumno/

        public ActionResult Index()
        {
            return View(db.entidadAlumno.ToList());
        }

        //
        // GET: /Alumno/Details/5

        public ActionResult Details(int id = 0)
        {
            Alumno alumno = db.entidadAlumno.Find(id);
            if (alumno == null)
            {
                return HttpNotFound();
            }
            return View(alumno);
        }

        //
        // GET: /Alumno/Create

        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Alumno/Create

        [HttpPost]
        public ActionResult Create(Alumno alumno)
        {
            if (ModelState.IsValid)
            {
                db.entidadAlumno.Add(alumno);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(alumno);
        }

        //
        // GET: /Alumno/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Alumno alumno = db.entidadAlumno.Find(id);
            if (alumno == null)
            {
                return HttpNotFound();
            }
            return View(alumno);
        }

        //
        // POST: /Alumno/Edit/5

        [HttpPost]
        public ActionResult Edit(Alumno alumno)
        {
            if (ModelState.IsValid)
            {
                db.Entry(alumno).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(alumno);
        }

        //
        // GET: /Alumno/Delete/5

        public ActionResult Delete(int id = 0)
        {
            Alumno alumno = db.entidadAlumno.Find(id);
            if (alumno == null)
            {
                return HttpNotFound();
            }
            return View(alumno);
        }

        //
        // POST: /Alumno/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            Alumno alumno = db.entidadAlumno.Find(id);
            db.entidadAlumno.Remove(alumno);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
        public ActionResult PaginaPrincipal()
        {
            return Redirect("/Home/Index");
        }
        public ActionResult VerMaterias(int id)
        {
            var busqueda = from c in db.entidadInscripcion
                           where c.alumno.Id == id
                           select c;
            return View(model: busqueda.ToList());

        }
        public ActionResult AlumnosMateria()
        {
            List<ItemGrilla> grilla = new List<ItemGrilla>();

            foreach (var materia in db.entidadMateria)
            {
                using (ContextoDatos db2 = new ContextoDatos())
                {
                    var results = from i in db2.entidadInscripcion
                                  where i.materia.id == materia.id
                                  select i;

                    foreach (var inscripcion in results.ToList())
                    {
                        ItemGrilla i = new ItemGrilla(inscripcion.alumno, materia, inscripcion.nota1, inscripcion.nota2);
                        grilla.Add(i);
                    }
                }
            }
            return View(model: grilla.ToList());
        }
        public ActionResult BuscarAlumno(string Nombre)
        {
        
            var alumno = db.entidadAlumno.Where(j => j.nombre == Nombre);            
            return View(model:alumno.ToList());

        }
        public ActionResult Volver()
        {
            return Redirect("/Alumno/Index");
        }
    }
}